import { debounce } from '@/utils/util';
import { EMIT_PARAMS_OBJ } from '@/utils/constant';

export default {
  created() {
    this.debounceGetMapData = debounce(function() {
      this.createMap();
    }, 200);
  },
  methods: {

    // 更新参数前检查下是否和本组件有关
    checkUpdateParams(obj) {
      const _obj = obj || {};
      let flag = false;
      for (const key in _obj) {
        if (key.indexOf(EMIT_PARAMS_OBJ) > -1) {
          const o = _obj[key];
          if (o.eventKey) {
            const event = this.config.events.find(e => e.key === o.eventKey);
            if (event) {
              flag = true;
            }
            break;
          }
        }
      }
      if (flag) {
        this.updateParams(_obj);
        this.debounceGetMapData();
      }
    },

    // 覆写公共组件中接收事件的方法
    acceptEvtMsg(paramters, key, obj) {
      this.checkUpdateParams(obj);
    },

  },
};
